Opi toteuttamaan progressiivista parantelua JavaScriptin ominaisuudentunnistuksella ja vararatkaisuilla luodaksesi saavutettavia, kestäviä ja tehokkaita verkkosivustoja maailmanlaajuisesti.
Progressiivinen parantelu: JavaScriptin ominaisuudentunnistus vs. vararatkaisut globaalissa verkossa
Verkkokehityksen jatkuvasti muuttuvassa maisemassa on ensiarvoisen tärkeää luoda verkkosivustoja, jotka ovat saavutettavia, suorituskykyisiä ja kestäviä monenlaisilla laitteilla, selaimilla ja verkko-olosuhteissa. Tässä tulevat esiin progressiivisen parantelun periaatteet. Progressiivinen parantelu on strategia, joka keskittyy verkkosivujen rakentamiseen siten, että ne ovat toimivia ja käyttökelpoisia perusominaisuuksilla, ja sitten lisätään kehittyneitä ominaisuuksia käyttäjille, joilla on kyvykkäämmät selaimet ja verkkoyhteydet. Ytimessään se omaksuu sulavan heikennyksen käsitteen, varmistaen positiivisen käyttäjäkokemuksen, vaikka tiettyjä ominaisuuksia ei tuettaisi. Tässä artikkelissa syvennytään progressiivisen parantelun käytännön soveltamiseen, keskittyen erityisesti JavaScriptin ominaisuudentunnistukseen ja tehokkaiden vararatkaisujen toteuttamiseen globaalista näkökulmasta.
Progressiivisen parantelun ydinperiaatteiden ymmärtäminen
Progressiivinen parantelu rakentuu useiden keskeisten periaatteiden perustalle:
- Sisältö ensin: Verkkosivuston ydin sisällön tulisi olla saavutettavissa ja ymmärrettävissä ilman JavaScriptiä tai CSS:ää. Tämä varmistaa, että käyttäjät, joilla on vanhemmat selaimet, poiskytketty JavaScript tai hitaat yhteydet, voivat silti päästä käsiksi perustietoihin.
- Semanttinen HTML: Semanttisten HTML-elementtien (esim.
<article>,<nav>,<aside>) hyödyntäminen antaa sisällölle rakenteen ja merkityksen, mikä tekee siitä saavutettavamman ruudunlukijoille ja hakukoneille. - CSS tyyliin ja asetteluun: CSS:ää käytetään sisällön visuaalisen esityksen parantamiseen, tarjoten miellyttävämmän ja käyttäjäystävällisemmän kokemuksen. Ydin sisällön tulisi kuitenkin olla luettavissa ja toimiva ilman CSS:ää.
- JavaScript paranteluun: JavaScriptiä käytetään interaktiivisuuden, dynaamisen sisällön ja edistyneiden ominaisuuksien lisäämiseen. Sen tulisi rakentua olemassa olevan, toimivan HTML:llä ja CSS:llä luodun perustuksen päälle. Jos JavaScript ei ole saatavilla, perustoiminnallisuuden tulisi silti säilyä.
Näitä periaatteita noudattamalla kehittäjät voivat luoda verkkosivustoja, jotka ovat kestäviä ja mukautettavissa monenlaisiin käyttäjäympäristöihin, Tokion nopeista yhteyksistä maaseudun Nepalin hitaamman kaistanleveyden tilanteisiin. Tavoitteena on tarjota käyttäjälle paras mahdollinen kokemus heidän teknologisista rajoituksistaan riippumatta.
JavaScriptin ominaisuudentunnistus: Selaimen kykyjen tunnistaminen
Ominaisuudentunnistus on prosessi, jossa määritetään, tukeeko käyttäjän selain tiettyä ominaisuutta, ennen kuin sitä yritetään käyttää. Tämä on ratkaisevan tärkeää progressiiviselle parantelulle, jotta kehittäjät voivat valikoivasti soveltaa edistyneitä ominaisuuksia selaimen ominaisuuksien perusteella. Se välttää selaimen nuuskinnan (tiettyjen selainversioiden tunnistaminen) sudenkuopat, jotka voivat olla epäluotettavia ja rikkoontua selaimien kehittyessä.
Miten ominaisuudentunnistus toimii
Ominaisuudentunnistus sisältää tyypillisesti JavaScript-koodin kirjoittamisen, joka testaa tietyn ominaisuuden tai siihen liittyvien API:en olemassaoloa. Tämä tehdään usein seuraavilla tavoilla:
- API:n olemassaolon tarkistaminen: Tarkistetaan, onko tietty API (esim.
localStorage,fetch,geolocation) olemassawindow-objektissa. - CSS-tuen testaaminen: Luodaan testielementti ja tarkistetaan, tukeeko se tiettyä CSS-ominaisuutta tai palauttaako se kelvollisen arvon. Tämä sisältää tuen esimerkiksi `flexboxille`, `gridille`, `transitionsille` jne.
- Ominaisuuskohtaisten API:en hyödyntäminen: Käytetään itse API:a ja tarkistetaan sen toimintaa. Esimerkiksi testataan, pystyykö videoelementti toistamaan tiettyä koodekkia.
Esimerkkejä ominaisuudentunnistuksesta
Tarkastellaanpa käytännön esimerkkejä. Muista huolellisesti escapoida lainausmerkit JSON-yhteensopivuutta varten:
1. Paikallisen tallennustilan tuen tarkistaminen:
function supportsLocalStorage() {
try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch (e) {
return false;
}
}
if (supportsLocalStorage()) {
// Käytä localStorage-ominaisuuksia
localStorage.setItem('myKey', 'myValue');
console.log('Paikallinen tallennustila tuettu!');
} else {
// Tarjoa vaihtoehtoinen lähestymistapa, esim. evästeet tai palvelinpuolen tallennus.
console.log('Paikallista tallennustilaa ei tueta. Käytetään vararatkaisua.');
}
Tässä esimerkissä tarkistamme, tukeeko selain `localStorage`-ominaisuutta. Jos ei, koodi tarjoaa vararatkaisun (kuten evästeet tai palvelinpuolen tallennuksen). Tämä on erityisen tärkeää käyttäjille, jotka käyttävät verkkosivustoa vanhemmilla laitteilla tai yksityisyysasetuksilla, jotka poistavat paikallisen tallennustilan käytöstä.
2. Geolokaatiotuen tarkistaminen:
function supportsGeolocation() {
return 'geolocation' in navigator;
}
if (supportsGeolocation()) {
navigator.geolocation.getCurrentPosition(
function(position) {
// Käytä geolokaatio-ominaisuuksia
console.log('Leveysaste: ' + position.coords.latitude);
console.log('Pituusaste: ' + position.coords.longitude);
},
function(error) {
// Käsittele virheet (esim. käyttäjä esti luvan)
console.error('Virhe sijainnin hakemisessa: ' + error.message);
}
);
} else {
// Tarjoa vaihtoehto (esim. pyydä käyttäjän kaupunkia ja näytä kartta)
console.log('Geolokaatiota ei tueta. Tarjotaan vaihtoehto.');
}
Tässä skenaariossa koodi tarkistaa `geolocation`-tuen. Jos se on saatavilla, geolokaatio-APIa voidaan käyttää. Muussa tapauksessa koodi tarjoaa vararatkaisun, kuten pyytää käyttäjää syöttämään sijaintinsa.
3. CSS Grid -tuen tarkistaminen:
function supportsCSSGrid() {
const test = document.createElement('div');
test.style.display = 'grid';
test.style.display = 'inline-grid';
return test.style.display.includes('grid');
}
if (supportsCSSGrid()) {
// Sovella CSS Grid -asetteluja
console.log('CSS Grid on tuettu!');
// Lisää dynaamisesti luokkia CSS Grid -tyylittelyä varten
document.body.classList.add('supports-grid');
} else {
// Käytä vaihtoehtoisia asetteluja (esim. flexbox tai floatit)
console.log('CSS Gridia ei tueta. Käytetään varasettelu.');
}
Tämä koodi tarkistaa CSS Grid -asettelumoduulin tuen. Jos tuettu, se käyttää Grid-pohjaisia asetteluja; muussa tapauksessa se käyttää muita asettelumenetelmiä, kuten Flexboxia tai float-pohjaisia asetteluja. Tämä esimerkki korostaa, miten ominaisuudentunnistus voi vaikuttaa elementtiin sovellettuun CSS-tyylittelyyn. Tämä lähestymistapa on kriittinen yhtenäisen visuaalisen kokemuksen ylläpitämiseksi eri selaimissa.
Kirjastot ja kehykset ominaisuudentunnistukseen
Vaikka ominaisuudentunnistus voidaan toteuttaa manuaalisesti, useat kirjastot ja kehykset voivat yksinkertaistaa prosessia. Ne tarjoavat usein valmiita toimintoja yleisten ominaisuuksien tunnistamiseen tai helpottavat selaimien välisen yhteensopivuuden monimutkaisuuden käsittelyä.
- Modernizr: Suosittu JavaScript-kirjasto, joka on erityisesti suunniteltu ominaisuudentunnistukseen. Se testaa laajan valikoiman HTML5- ja CSS3-ominaisuuksia ja tarjoaa luokkia
<html>-elementtiin, mikä tekee tiettyjen ominaisuuksien kohdentamisesta helppoa CSS:llä ja JavaScriptillä. - Polyfillit: Kirjastot, jotka tarjoavat "simejä" tai toteutuksia ominaisuuksista, jotka saattavat puuttua vanhemmista selaimista. Polyfillit täyttävät aukot ja antavat kehittäjien käyttää moderneja ominaisuuksia vaarantamatta yhteensopivuutta. Esimerkiksi `fetch`-API:n polyfill on hyvin yleinen.
Harkitse Modernizrin kaltaisen kirjaston käyttöä tai asianmukaisten polyfillien toteuttamista ominaisuudentunnistuksen ja vararatkaisujen virtaviivaistamiseksi.
Tehokkaiden vararatkaisujen toteuttaminen: Saavutettavuuden ja käytettävyyden varmistaminen
Vararatkaisut ovat ratkaisevan tärkeitä progressiivisessa parantelussa. Kun käyttäjän selain tai laite ei tue tiettyä ominaisuutta, vararatkaisut tarjoavat vaihtoehtoisia ratkaisuja varmistaakseen, että ydintoiminnallisuus ja sisältö ovat edelleen saavutettavissa. Varatkaisun tavoitteena on tarjota heikentynyt, mutta käyttökelpoinen kokemus.
Vararatkaisujen tyypit
Tässä on joitakin yleisiä vararatkaisujen tyyppejä:
- CSS:n sulava heikennys: Jos CSS-ominaisuutta ei tueta, selain yksinkertaisesti jättää sen huomiotta. Tämä tarkoittaa, että jos asettelu perustuu tiettyyn ominaisuuteen (esim. `flexbox`), ja selain ei sitä tue, asettelu renderöityy silti, ehkä käyttäen vanhempaa menetelmää kuten floatteja, mutta käyttäjä ei koe virheitä.
- JavaScriptin sulava heikennys: Kun JavaScript-ominaisuudet eivät ole käytettävissä, ydin-HTML-sisällön ja toiminnallisuuden tulisi silti toimia. Tämä voidaan saavuttaa varmistamalla, että sivuston rakenne, sisältö ja käyttäjäkokemus ovat toimivia ilman JavaScriptiä. Jos Javascript ei ole saatavilla, käytetään eri lähestymistapaa, joka ei sitä tarvitse. Esimerkiksi palvelinpuolen renderöintiä monimutkaiselle sivulle.
- Vaihtoehtoinen sisältö: Tarjoa vaihtoehtoista sisältöä, jos ominaisuutta ei tueta. Esimerkiksi, jos selain ei tue `video`-elementtiä, voit tarjota linkin videon lataamiseksi tai staattisen kuvan paikkamerkkinä.
Esimerkkejä vararatkaisustrategioista
Tarkastellaanpa muutamia havainnollistavia esimerkkejä. Nämä esimerkit keskittyvät tarjoamaan ratkaisuja, jotka ovat käyttäjäystävällisiä ja jotka huomioivat globaalin yleisön ja ympäristöt.
1. Kuvatiedostomuodon tuen vararatkaisu:
<picture>
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="Kuvan kuvaus">
</picture>
Tässä esimerkissä <picture>-elementtiä käytetään <source>-elementin kanssa tarjoamaan kuvan WebP-versio. Jos selain tukee WebP:tä, se lataa WebP-kuvan. Jos ei, se palaa JPG-kuvaan. Tämä on edullista, koska WebP-tiedostoilla on usein parempi pakkaus, mikä vähentää tiedostokokoa ja parantaa sivun latausaikoja. Tämä on parannus käyttäjille, joilla on hitaammat internet-yhteydet.
2. Varatratkaisu JavaScriptillä tehostetuille lomakkeille:
Harkitse lomaketta, joka käyttää JavaScriptiä asiakaspuolen validointiin ja dynaamisiin päivityksiin. Jos JavaScript on poistettu käytöstä, lomakkeen tulisi silti toimia, mutta palvelinpuolen validoinnilla. HTML rakennettaisiin siten, että se sallii perustoiminnallisuuden ilman JavaScriptiä.
<form action="/submit-form" method="POST" onsubmit="return validateForm()">
<!-- Lomakekentät -->
<input type="submit" value="Lähetä">
</form>
Tässä tapauksessa, vaikka JavaScript-funktio `validateForm()` ei olisikaan käytettävissä JavaScriptin ollessa poissa käytöstä, lomake lähetetään silti. Lomake lähettää edelleen tiedot, ja ne validoidaan palvelinpuolella.
3. Varatratkaisu `fetch`-API:lle (asynkroninen tiedonhaku):
if (typeof fetch !== 'undefined') {
// Käytä fetch-APIa tiedon hakemiseen
fetch('/api/data')
.then(response => response.json())
.then(data => {
// Käsittele tiedot
console.log(data);
})
.catch(error => {
// Käsittele virheet
console.error('Virhe tiedon hakemisessa:', error);
});
} else {
// Varatratkaisu: käytä XMLHttpRequestiä
const xhr = new XMLHttpRequest();
xhr.open('GET', '/api/data');
xhr.onload = function() {
if (xhr.status >= 200 && xhr.status < 300) {
const data = JSON.parse(xhr.responseText);
// Käsittele tiedot
console.log(data);
} else {
// Käsittele virheet
console.error('Pyyntö epäonnistui. Palautti tilan: ' + xhr.status);
}
};
xhr.onerror = function() {
// Käsittele verkkovirheet
console.error('Verkkovirhe');
};
xhr.send();
}
Tämä havainnollistaa, miten `fetch`-APIa käytetään tiedon pyytämiseen, mutta käytetään `XMLHttpRequest`-vararatkaisua, jos `fetch` ei ole saatavilla. Tämä vararatkaisu varmistaa taaksepäin yhteensopivuuden vanhempien selaimien ja alustojen kanssa. Jos `fetch`-API ei ole saatavilla, koodi käyttää vanhempaa `XMLHttpRequest`-objektia. Tämä lähestymistapa varmistaa, että tiedot voidaan edelleen hakea, vaikka uudempaa `fetch`-APIa ei tuettaisi. Tämä tarkoittaa, että sovellus toimii laajemmassa valikoimassa selaimia.
Parhaat käytännöt vararatkaisuille
- Priorisoi ydintoiminnallisuus: Varmista, että verkkosivuston olennainen toiminnallisuus toimii myös ilman edistyneitä ominaisuuksia. Tämä sisältää sisällön luettavuuden, navigoinnin ja lomakkeiden lähettämisen.
- Tarjoa selkeää tietoa: Jos ominaisuutta ei tueta, anna käyttäjälle selkeä viesti, jossa selitetään rajoitus. Tämä voi estää turhautumista ja auttaa käyttäjiä ymmärtämään, mitä tapahtuu.
- Testaa perusteellisesti: Testaa verkkosivusto eri selaimissa, eri laitteilla ja JavaScriptin ollessa poistettu käytöstä varmistaaksesi, että vararatkaisut toimivat odotetusti. Testaa eri käyttöjärjestelmillä ja eri ruudunlukijoilla.
- Harkitse suorituskykyä: Varmista, että vararatkaisut ovat mahdollisimman suorituskykyisiä. Vältä liian monimutkaisia vararatkaisuja, jotka voisivat heikentää suorituskykyä, erityisesti vähätehoisilla laitteilla tai hitaissa verkoissa. Priorisoi latausajat ja responsiivinen käyttäjäkokemus.
- Käytä kohteliasta heikennystä: Termi "sulava heikennys" (graceful degradation) kuvaa, miten verkkosivuston tulisi edelleen toimia ja heikentyä "sulavasti". Heikennyksen ei tulisi aiheuttaa sitä, että käyttäjä ei pystyisi lainkaan pääsemään käsiksi sisältöön.
Globaalit näkökohdat: Mukautuminen monipuoliseen käyttäjäkuntaan
Progressiivista parantelua toteutettaessa on tärkeää ottaa huomioon käyttäjien monipuoliset tarpeet ja ympäristöt maailmanlaajuisesti. Tämä vaatii useiden tekijöiden huolellista harkintaa:
- Verkko-olosuhteet: Internetin saatavuus vaihtelee suuresti ympäri maailmaa. Verkkosivustot tulisi optimoida eri yhteysnopeuksille, mukaan lukien hitaat yhteydet ja ajoittainen yhteys. Harkitse tekniikoita, kuten kuvien optimointi, sisällönjakeluverkot (CDN:t) ja laiska lataus parantaaksesi suorituskykyä käyttäjille, joilla on hitaammat internet-yhteydet.
- Laitteiden ominaisuudet: Käyttäjät käyttävät verkkoa monenlaisilla laitteilla, huippuluokan älypuhelimista vanhempiin peruspuhelimiin. Varmista, että verkkosivustosi on responsiivinen ja mukautuu eri näyttökokoihin ja syöttötapoihin. Testaa perusteellisesti laitteilla, joilla on vaihtelevat näyttökoot ja resoluutiot.
- Saavutettavuus: Toteuta saavutettavuuden parhaita käytäntöjä varmistaaksesi, että vammaiset käyttäjät voivat päästä käsiksi verkkosivustoon ja käyttää sitä. Tämä sisältää vaihtoehtoisen tekstin tarjoamisen kuville, semanttisen HTML:n käytön ja riittävän värikontrastin varmistamisen. Noudata WCAG-ohjeita.
- Kansainvälistäminen ja lokalisointi: Harkitse kohdeyleisösi kieltä, kulttuuria ja alueellisia mieltymyksiä. Käännä sisältö, käytä sopivia päivämäärä- ja aikaformaatteja ja mukauta verkkosivuston suunnittelua paikalliseen estetiikkaan. Käytä asianmukaisia merkistöjä ja käsittele eri kirjoitussuuntia (esim. oikealta vasemmalle kirjoitettavat kielet).
- Selaimen käyttö: Eri selaimilla on eri tasot verkkoteknologioiden tukea. Ole tietoinen kohdemarkkinoillasi laajalti käytetyistä selaimista ja varmista, että verkkosivustosi on yhteensopiva. Käytä työkaluja, kuten StatCounterin kaltaisten lähteiden selainstatistiikkaa, kehitysvalintojesi pohjaksi.
- Tietosuojasäännökset: Noudata maailmanlaajuisia tietosuojasäännöksiä (esim. GDPR, CCPA). Tämä on erityisen tärkeää käytettäessä seurantateknologioita tai kerättäessä käyttäjätietoja.
Esimerkki: Intiassa sisältöä tarjoava verkkosivusto tulisi suunnitella ottaen huomioon alhaisemman kaistanleveyden yhteydet. Kuvat tulisi optimoida koon mukaan. Sisältö tulisi kirjoittaa selkeällä ja ytimekkäällä tyylillä. Kielivaihtoehtoja tulisi harkita. Lisäksi monimutkaisen interaktiivisen elementin tekstipohjaisen version tarjoaminen tarjoaa korvaamattoman vaihtoehdon käyttäjille, joilla on vähemmän kehittynyt laitteisto.
Progressiivisen parantelun testaus ja virheenkorjaus
Testaus on olennainen osa kehitysprosessia, erityisesti progressiivista parantelua toteutettaessa. Perusteellinen testaus varmistaa, että ominaisuudet heikentyvät sulavasti ja että käyttäjäkokemus säilyy positiivisena eri skenaarioissa.
Testausstrategiat
- Selaintestaus: Testaa verkkosivustoa eri selaimissa (Chrome, Firefox, Safari, Edge, vanhemmat selaimet, mobiiliselaimet) ja eri käyttöjärjestelmissä (Windows, macOS, Linux, Android, iOS) varmistaaksesi yhteensopivuuden ja johdonmukaisen toiminnan.
- Laitetestaus: Testaa eri laitteilla (älypuhelimet, tabletit, pöytäkoneet), joilla on eri näyttökoot ja resoluutiot varmistaaksesi responsiivisen suunnittelun ja johdonmukaisen käyttäjäkokemuksen.
- JavaScriptin poiskytkennän testaus: Poista JavaScript käytöstä selaimen asetuksista varmistaaksesi, että verkkosivuston ydinsisältö ja toiminnallisuus pysyvät saavutettavina. Tämä on olennainen testi sulavan heikennyksen varmistamiseksi.
- Verkon rajoitusten testaus: Simuloi hitaita verkko-olosuhteita (esim. 3G, hidas yhteys) testataksesi, miten verkkosivusto toimii eri kaistanleveysrajoituksissa. Tämä auttaa tunnistamaan suorituskykyongelmia ja varmistamaan, että verkkosivusto pysyy käyttökelpoisena käyttäjille, joilla on hitaammat internet-yhteydet. Monet kehittäjätyökalut (esim. Chromessa) sisältävät verkon rajoituksen.
- Saavutettavuustestaus: Käytä saavutettavuustestauksen työkaluja (esim. WAVE, Lighthouse) ja ruudunlukijoita (esim. JAWS, NVDA) arvioidaksesi verkkosivuston saavutettavuutta ja varmistaaksesi saavutettavuusohjeiden noudattamisen.
- Selaimien välisten testauspalvelujen käyttö: Hyödynnä selaimien välisiä testauspalveluita (esim. BrowserStack, Sauce Labs) automatisoimaan testaus eri selaimissa ja laitteissa. Nämä palvelut mahdollistavat kattavamman testausstrategian.
Virheenkorjaustekniikat
- Selaimen kehittäjätyökalut: Käytä selaimen kehittäjätyökaluja (esim. Chrome DevTools, Firefox Developer Tools) JavaScriptin virheenkorjaukseen, verkkopyyntöjen tarkasteluun ja suorituskyvyn analysointiin.
- Konsolilokitus: Käytä `console.log()`, `console.warn()` ja `console.error()` tulostaaksesi virheenkorjaustietoja konsoliin. Tämä voi auttaa virheenkorjausprosessissa.
- Virheenkäsittely: Toteuta vankat virheenkäsittelymekanismit (esim. `try...catch`-lohkot) JavaScript-virheiden sieppaamiseksi ja käsittelemiseksi. Kirjaa virheet keskitettyyn paikkaan seurantaa ja analysointia varten.
- Koodin linting: Käytä koodinlintereitä (esim. ESLint, JSHint) tunnistaaksesi mahdolliset ongelmat JavaScript-koodissasi (esim. syntaksivirheet, tyylin epäjohdonmukaisuudet) ja varmistaaksesi koodin laadun.
- Versionhallinta: Käytä versionhallintajärjestelmiä (esim. Git) muutosten seuraamiseen ja tehokkaaseen yhteistyöhön. Versionhallinta helpottaa palauttamista edelliseen toimivaan versioon.
Perusteellinen testaus- ja virheenkorjausprosessi on olennainen luotaessa luotettavia ja suorituskykyisiä verkkosivustoja, jotka tarjoavat positiivisen käyttäjäkokemuksen kaikilla laitteilla ja selaimilla. Se on jatkuva prosessi, ja testejä tulisi suorittaa koko kehityselinkaaren ajan.
Yhteenveto
Progressiivinen parantelu on tehokas strategia sellaisten verkkosivustojen rakentamiseen, jotka ovat saavutettavia, suorituskykyisiä ja mukautettavissa globaalin verkon monipuolisiin ympäristöihin. Omaksumalla ominaisuudentunnistuksen ja toteuttamalla tehokkaita vararatkaisuja, kehittäjät voivat luoda verkkosivustoja, jotka tarjoavat positiivisen käyttäjäkokemuksen kaikille heidän teknologisista rajoituksistaan riippumatta. Priorisoimalla sisältö ensin -lähestymistavan, hyödyntämällä semanttista HTML:ää ja käyttämällä strategisesti CSS:ää ja JavaScriptiä, verkkosivustot voivat heikentyä sulavasti ja varmistaa, että käyttäjät pääsevät käsiksi ydintoiminnallisuuteen laitteestaan, selaimestaan tai yhteydestään riippumatta. Keskeinen opetus on keskittyä vankan perustan tarjoamiseen, joka toimii kaikille käyttäjille, parantaen kokemusta niille, joilla on kyky nauttia edistyneistä ominaisuuksista.
Ymmärtämällä progressiivisen parantelun periaatteet, toteuttamalla tehokkaita vararatkaisuja ja ottamalla huomioon globaalin yleisön ainutlaatuiset tarpeet, kehittäjät voivat luoda kattavamman, kestävämmän ja käyttäjäystävällisemmän verkkokokemuksen kaikille. Tekemällä näistä periaatteista osan kehitysprosessia varmistat kestävämmän ja saavutettavamman verkkokokemuksen käyttäjille maailmanlaajuisesti.